package com.project.srtp.secure.service;

import com.project.srtp.secure.dto.req.*;
import com.project.srtp.secure.dto.resp.GetDecryptionSenderKeyRespDTO;
import com.project.srtp.secure.dto.resp.InitKeyRespDTO;
import com.project.srtp.secure.dto.resp.PreKeyBundleRespDTO;

/**
 * @author 曹行阳
 * @version 0.1
 * @date 2025/6/15 17:40
 */
public interface KeyStoreService {
    void storeInitKey(InitKeyReqDTO request);
    InitKeyRespDTO fetchInitKeys();
    PreKeyBundleRespDTO fetchPreKeyBundle(FetchPreKeyReqDTO fetchPreKeyReqDTO);
    void storeEncryptionSenderKey(EncryptionSenderKeyReqDTO request);
    Integer getIdentityKeyIdByUserId(IdentityKeyIdByUserIdReqDTO request);
    Boolean hasDecryptionSenderKey(HasDecryptionSenderKeyReqDTO request);

    GetDecryptionSenderKeyRespDTO getDecryptionSenderKey(getDecryptionSenderKeyReqDTO request);

    void storeDecryptionSenderKey(StoreDecryptionSenderKeyReqDTO request);
}
